﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Text;

namespace Fadd.Net
{
    /// <summary>
    /// Socket that will try again if connection fails.
    /// </summary>
    class RetryingSocket : Socket
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="T:System.Net.Sockets.Socket"/> class using the specified address family, socket type and protocol.
        /// </summary>
        /// <param name="addressFamily">One of the <see cref="T:System.Net.Sockets.AddressFamily"/> values. 
        ///                 </param><param name="socketType">One of the <see cref="T:System.Net.Sockets.SocketType"/> values. 
        ///                 </param><param name="protocolType">One of the <see cref="T:System.Net.Sockets.ProtocolType"/> values. 
        ///                 </param><exception cref="T:System.Net.Sockets.SocketException">The combination of <paramref name="addressFamily"/>, <paramref name="socketType"/>, and <paramref name="protocolType"/> results in an invalid socket. 
        ///                 </exception>
        public RetryingSocket(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType) : base(addressFamily, socketType, protocolType)
        {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="T:System.Net.Sockets.Socket"/> class using the specified value returned from <see cref="M:System.Net.Sockets.Socket.DuplicateAndClose(System.Int32)"/>.
        /// </summary>
        /// <param name="socketInformation">The socket information returned by <see cref="M:System.Net.Sockets.Socket.DuplicateAndClose(System.Int32)"/>.
        ///                 </param>
        public RetryingSocket(SocketInformation socketInformation) : base(socketInformation)
        {
        }

        
    }
}
